package ru.st.selenium.applogicImp;

import ru.st.selenium.applogicTop.UserHelper;
import ru.st.selenium.model.Employer;
import ru.st.selenium.pages.Pwd;


public class UserHelperImp extends DriverBasedHelper implements UserHelper {

	public UserHelperImp(ApplicationManagerImp manager) {
		super(manager.getWebDriver());
	}

	@Override
	public void loginAs(Employer user) {
		pages.loginPage.ensurePageLoaded()
		.setloginField(user.getLoginName())
		.setPasswordField(user.getPassword())
		.clickSubmitButton();
	}

	@Override
	public void logout() {
		pages.User.ensurePageLoaded()
		.Logout();
	}

	// Осуществялется проверка появления элементов после того, как залогинимся в
	// Систему
	@Override
	public boolean isLoggedIn() {
		// ждем пока будет загружена page - internalPage
		return pages.User.waitPageLoaded();
	}

	// Проверяем, что мы не только залогинены, но залогинены под конкретным
	// пользователем
	@Override
	public boolean isLoggedInAs(Employer user) {
		return isLoggedIn()
				&& getLoggedUser().getLoginName().equals(user.getLoginName());
	}

	@Override
	public boolean isNotLoggedIn() {
		return pages.loginPage.waitPageLoaded();
	}

	private Employer getLoggedUser() {
		Pwd userProfile = pages.User.ensurePageLoaded()
				.GoToPwd()
				.gotoFremUserProfilePage()
				.ensurePageLoaded();
		return new Employer()
		.setLastName(userProfile.getLastName())
		.setLoginName(userProfile.getLoginName());
	}

}
